ASM 汇编语言 1

  • Created on 2014-10

教材:《汇编语言》(第二版)王爽 著 清华大学出版社

章一、基础知识

1.3 汇编语言的组成:
(1)汇编指令:机器码的助记符。(核心)
(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
(3)其它符号:如+、-、*、/等,由编译器识别,没有对应的机器码。

1.7 CPU对储存器的读写
总线从逻辑上分3类:地址线、数据线、控制线。

章二、寄存器

2.2 字在寄存器中的存储
低字节:权越小,越低。个位的数字的权是1,十位的权是2,百位的权是4,如此类推。
高字节:权比较大的位(该位的数字代表的分量较大),即为高字节。
与此相关的是——大小端、网络字节序

2.3
指令的两个操作对象的位数应该一致。

2.9 段寄存器
8086CPU有四个段寄存器:CS、DS、SS、ES。

2.10 CS和IP
CS为代码段(code segment?)寄存器,IP为指令指针(instruction ptr?)寄存器。
任意时刻CPU将CS:IP指向的内容当作指令执行。

2.11 修改CS、IP的指令
jmp指令:jmp 段地址:偏移地址 —— jmp 2AE3:3

8086CPU的工作过程:
(1)从CS:IP指向的内存单位读取指令,读取的指令进入指令缓存器
(2)IP指向下一条指令
(3)执行指令。(转到步骤(1),重复这个过程)

Chapter2 实验1 查看CPU和内存,用机器指令和汇编指令编程
Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。
它可以查看CPU各种寄存器的内容、内存的情况和在机器码级跟踪程序的运行。


指令
R     查看、改变CPU寄存器的内容
D     查看内存中的内容
E     改写内存中的内容
U     将内存中的机器指令翻译成汇编指令
T     执行一条(CS:IP指向的)机器指令
A     以汇编指令的格式,在内存中写入一条机器指令

G     跳转执行到指定的内存位置
P     程序执行到最后一步,必须使用的指令

通用寄存器:ax,bx,cx,dx
段寄存器:ds,es,ss,cs
偏移地址寄存器:sp.ip,bp,si,di
标志寄存器:flag

熟悉基础操作过程的截图:









实验任务:
(1)




(2)计算2的8次方。
(在内存2000:0开始写该程序)
mov ax, 1
add ax, ax
add ax, ax
add ax, ax
     or
mov ax, 1
add ax, ax
jmp 2000:3     (暂时的知识不足以写出循环控制语句!)
(3)结论:内存FFF00H~FFFFFH为ROM区,内容可读但不可写。
(4)结论:8086的显存地址空间是A0000H~BFFFFH,其中B8000H~BFFFFH为80*25彩色字符模式显示缓冲区,当向这个地址空间写入数据时,这些数据会立即出现在显示器上。
0%